﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using bolsatrabajo.Persistencia;
using bolsatrabajo.Dominio.NHIBERNATE;

namespace bolsatrabajo.Negocio
{
    public class ServAviso
    {
        public IPostulanteNH PostulanteNH { get; set; }
        public IAvisoNH AvisoNH { get; set; }
        public IPostulacionNH PostulacionNH { get; set; }
        public IOfertanteNH OfertanteNH { get; set; }
        Ofertante ofertante = new Ofertante();
        public Aviso CrearAviso(String Correo, Aviso aviso)
        {
            Ofertante ofertante = OfertanteNH.Obtener(Correo);
            aviso.Ofertante = ofertante;
            return AvisoNH.Crear(aviso);
        }

        

        public Aviso ConsultarAviso(Int32 idaviso)
        {
            return AvisoNH.Obtener(idaviso);
        }

        public Aviso ModificarAviso(Aviso aviso)
        {
            Aviso existeaviso = this.ConsultarAviso(aviso.Id_Aviso);
            if (existeaviso == null)
                throw new Exception("Aviso no existe");
            return AvisoNH.Modificar(aviso);
        }

        public void EliminarAviso(Aviso aviso)
        {
            Aviso existeaviso = this.ConsultarAviso(aviso.Id_Aviso);
            if (existeaviso == null)
                throw new Exception("Aviso no existe");
            AvisoNH.Eliminar(aviso);
        }

        public ICollection<Aviso> AvisosxOfertante(String correoofertante)
        {
            if (correoofertante == null || String.Empty.Equals(correoofertante))
                throw new Exception("Correo de Ofertante no válido");
            Ofertante ofertanteExistente = OfertanteNH.Obtener(correoofertante);
            if (ofertanteExistente == null)
                throw new Exception("Ofertante no registrado");
            return AvisoNH.ListarAvisosxOfertante(correoofertante);
        }
        public ICollection<Aviso> TodosLosAvisos()
        {
            return AvisoNH.ListarTodosLosAvisos();
        }
    }
}